// #include <bits/stdc++.h>
// using namespace std;
// typedef long long ll;

// ll fun(string s)
// {
//     string str;
//     string temp;
//     for(int i = 0; i < s.size(); i++)
//     {
//         if(s[i] == '.' || s[i] == '/')
//         {
//             if(temp.size() == 3)
//                 str += temp;
//             else if(temp.size() == 2)
//             {
//                 str += '0';
//                 str += temp;
//             }
//             else{
//                 str +="00";
//                 str += temp;
//             }
//             if(s[i] == '/')break;
//             temp.clear();
//             continue;
//         }
//         temp += s[i];
//     }
//     return stoll(str);
// }

// int main()
// {
//     string s;
//     cin >> s;
//     ll t = fun(s);
//     string cmp;
//     while(t)
//     {
//         if(t & 1) cmp = '1' + cmp;
//         else cmp = '0' + cmp;

//         t >>= 1;
//     }
//     int k = 0;
//     for(int i = 0; i < s.size(); i++)
//     {
//         if(s[i] == '/')
//         {
//             k = stoi(s.substr(i + 1));
//             break;
//         }
//     }
//     cmp = cmp.substr(0, k);
//     int n;
//     cin >> n;
//     while(n--)
//     {
//         string ss;
//         cin >> ss;
//         ss += '.';
//         ll x = fun(ss);
//         string c;
//         while(x)
//         {
//             if(x & 1) c = '1' + c;
//             else c = '0' + c;

//             x >>= 1;

//         }
//         if(c.substr(0, k) == cmp)
//         {
//             cout << "YES" << endl;
//         }
//         else cout << "NO" << endl;
//     }
//     return 0;
// }

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a[4], k;
    scanf("%d.%d.%d.%d/%d", &a[0], &a[1], &a[2], &a[3] ,&k);
    int q;
    cin >> q;
    string ans;
    for(int i = 0; i < 4; i++)
    {
        int t = a[i];
        string tem;
        while(t)
        {
            if(t & 1)tem += '1';
            else tem += '0';
            t >>= 1;
        }
        while(tem.size() < 8) tem += '0';
        reverse(tem.begin(), tem.end());
        ans += tem;
    }
    while(ans.size() > k) ans.pop_back();
    while(q--)
    {
        scanf("%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3]);
        string cmp;
        for(int i = 0; i < 4; i++)
        {
            int t = a[i];
            string tem;
            while(t)
            {
                if(t & 1)tem += '1';
                else tem += '0';
                t >>= 1;
            }
            while(tem.size() < 8) tem += '0';
            reverse(tem.begin(), tem.end());
            cmp += tem;
        }
        while(cmp.size() > k) cmp.pop_back();
        if(cmp == ans)
            cout << "YES" << endl;
        else cout << "NO" << endl;
    }
    return 0;
}